// import { Inject, Post, Get, Body, Query } from '@midwayjs/core';
// import { CoolController, BaseController } from '@cool-midway/core';
// import { AutomationConditionEntity } from '../../entity/condition';
// import { AutomationConditionService } from '../../service/app/condition';

// /**
//  * 管理端-自动化条件
//  */
// @CoolController({
//   api: ['add', 'delete', 'update', 'info', 'list', 'page'],
//   entity: AutomationConditionEntity,
//   service: AutomationConditionService,
//   pageQueryOp: {
//     keyWordLikeFields: ['a.description'],
//     fieldEq: ['a.conditionType', 'a.weatherType', 'a.compareType', 'a.pipelineId'],
//     where: async (ctx) => {
//       const { createTime, conditionType } = ctx.request.body;
//       const conditions = [];
//       if (createTime && createTime.length === 2) {
//         conditions.push([`a.createTime BETWEEN '${createTime[0]}' AND '${createTime[1]}'`]);
//       }
//       if (conditionType !== undefined && conditionType !== null) {
//         conditions.push([`a.conditionType = ${conditionType}`]);
//       }
//       return conditions;
//     },
//     select: ['a.*'],
//     join: [],
//   },
// })
// export class AdminAutomationConditionController extends BaseController {
//   @Inject()
//   automationConditionService: AutomationConditionService;

//   /**
//    * 根据流水线ID获取条件列表
//    */
//   @Get('/byPipeline', { summary: '根据流水线ID获取条件列表' })
//   async getConditionsByPipeline(@Query('pipelineId') pipelineId: number) {
//     const conditions = await this.automationConditionService.list({ pipelineId });
//     return this.ok(conditions);
//   }

//   /**
//    * 批量删除条件
//    */
//   @Post('/batchDelete', { summary: '批量删除条件' })
//   async batchDelete(@Body('ids') ids: number[]) {
//     await this.automationConditionService.delete(ids);
//     return this.ok('删除成功');
//   }

//   /**
//    * 验证条件配置
//    */
//   @Post('/validate', { summary: '验证条件配置' })
//   async validateCondition(@Body() condition: any) {
//     const errors = [];

//     // 基础验证
//     if (!condition.conditionType && condition.conditionType !== 0) {
//       errors.push('请选择条件类型');
//     }

//     // 气象条件验证
//     if (condition.conditionType === 0) {
//       if (!condition.weatherType && condition.weatherType !== 0) {
//         errors.push('请选择气象条件类型');
//       }
//       if (!condition.cityCode) {
//         errors.push('请选择城市');
//       }
//       if (!condition.threshold) {
//         errors.push('请设置阈值');
//       }
//       if (!condition.compareType && condition.compareType !== 0) {
//         errors.push('请选择比较方式');
//       }
//     }

//     // 设备条件验证
//     if (condition.conditionType === 1) {
//       if (!condition.deviceId) {
//         errors.push('请选择设备');
//       }
//       if (!condition.deviceField) {
//         errors.push('请设置设备属性字段');
//       }
//       if (!condition.threshold) {
//         errors.push('请设置阈值');
//       }
//       if (!condition.compareType && condition.compareType !== 0) {
//         errors.push('请选择比较方式');
//       }
//     }

//     // 定时条件验证
//     if (condition.conditionType === 2) {
//       if (!condition.triggerTime) {
//         errors.push('请设置触发时间');
//       }
//     }

//     return this.ok({
//       valid: errors.length === 0,
//       errors
//     });
//   }

//   /**
//    * 获取条件统计信息
//    */
//   @Get('/statistics', { summary: '获取条件统计信息' })
//   async getStatistics() {
//     const total = await this.automationConditionService.count();
//     const weatherConditions = await this.automationConditionService.count({ conditionType: 0 });
//     const deviceConditions = await this.automationConditionService.count({ conditionType: 1 });
//     const timeConditions = await this.automationConditionService.count({ conditionType: 2 });

//     return this.ok({
//       total,
//       weatherConditions,
//       deviceConditions,
//       timeConditions,
//       distribution: {
//         weather: total > 0 ? Math.round((weatherConditions / total) * 100) : 0,
//         device: total > 0 ? Math.round((deviceConditions / total) * 100) : 0,
//         time: total > 0 ? Math.round((timeConditions / total) * 100) : 0
//       }
//     });
//   }
// }